package it.heima.xmy.Demo1;

import java.util.LinkedHashSet;
import java.util.Set;

/*请按以下要求顺序编码：
1. 定义一个可以存储“整数”的LinkedHashSet对象
1. 存储以下整数: 20,30,50,10,30,20
1. 打印集合大小。为什么跟存入的数量不一致？
1. 使用增强for遍历集合，打印大于25的元素

为什么打印集合数量跟存入的数量不一致？*/
public class SetDemo03 {
    public static void main(String[] args) {
        Set<Integer> set  = new LinkedHashSet<>();
        set.add(20);
        set.add(30);
        set.add(50);
        set.add(10);
        set.add(30);
        set.add(20);
        System.out.println(set.size());
        for (Integer integer : set) {
            if (integer>=25){              //自动拆箱
                System.out.println(integer);
            }
        }

        //原因：  LinkedHashSet  底层用的是  链表  哈希表  和  红黑树的数据结构，也同样具有hashCode方法和equals方法
        //       哈希表中不能存储相同元素。  会进行判断当前哈希位置上是否有元素，如果没有直接放入，如果有（发生哈希碰撞）
        //      就会进行equals比较两个元素是否相同，如果相同就不存储
    }
}
